package com.xayy.health.mgt.service;

import cn.kawins.base.result.CheckResult;
import cn.kawins.base.result.ResultBody;
import cn.kawins.mybatis.BaseService;
import com.github.pagehelper.PageInfo;
import com.xayy.health.mgt.model.FaultScoreConfig;
import com.xayy.health.mgt.model.TaskChildInfo;
import com.xayy.health.mgt.model.TaskInfo;
import com.xayy.health.mgt.model.dto.ChildTaskDto;
import com.xayy.health.mgt.model.dto.TaskInfoDto;
import com.xayy.health.mgt.model.dto.TelemetryDto;

import java.util.List;

/**
 * @author zhangxa
 */
public interface TaskInfoService extends BaseService<TaskInfo> {

    /**
     * 自动运行任务列表分页(数据处理，趋势预测，事后诊断)
     * @param taskInfoDto 任务信息
     * @return 结果日志
     */
    PageInfo<TaskInfo> pageList(TaskInfoDto taskInfoDto);

    /**
     * 自动运行任务列表分页(数据处理，趋势预测，事后诊断)
     * @param taskInfoDto 任务信息
     * @return 结果日志
     */
    CheckResult<?> saveTaskInfo(TaskInfoDto taskInfoDto);

    /**
     * 自动运行子任务列表分页(数据处理，趋势预测，事后诊断)
     * @param childTaskDto 子任务对象
     * @return 结果日志
     */
    PageInfo<TaskChildInfo> getChildTaskPageList(ChildTaskDto childTaskDto);

    /**
     * 修改信息状态信息
     *
     * @param telemetryDto 信息信息
     */
    void updateStatusByTaskInfo(TelemetryDto telemetryDto);

    /**
     * 事后诊断上线运行
     *
     * @param telemetryDto 遥测入参
     * @return ResultBody
     */
    ResultBody online(TelemetryDto telemetryDto);

    /**
     * 获取数据预处理任务信息
     *
     * @param taskInfo 任务信息
     * @return List<TaskInfo>
     */
    List<TaskInfo> selectPreData(TaskInfo taskInfo);

    /**
     * 根据任务id查询任务数据
     *
     * @param taskId 任务id
     * @return CheckResult<TaskInfo>
     */
    CheckResult<TaskInfo> selectTaskInfo(Long taskId);
}
